package io;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

/*
对象反序列化
 */
public class OISDemo {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        FileInputStream fin = new FileInputStream("person.obj");
        ObjectInputStream oos = new ObjectInputStream(fin);
        /*反序列化时可能抛出异常
        java.io.InvalidClassException
    原因是  读取这个对象的版本号与当前person类的版本号不一致
        这是因为该对象写入文件后 person类修改过  所以文件里的对象版本号与当前
        类的版本号不一致了
        可以自行指定person的版本号  这样就算person类修改过  我们不修改版本号
        以前用的版本号还能读取回来   否则就会生成一个新的版本号  导致该类只要改过内容 版本号就会变

         */
        Person p = (Person) oos.readObject();
        System.out.println(p);
        oos.close();
    }

}
